1. Technical Field
The present invention relates generally to computer networking and, in particular, to improving link bandwidth utilization in a packet-switched network. More particularly, the present invention relates to a system, method, program product, and data structure for selectively adjusting pause time flow control in packet-switched networks. Still more particularly, the present invention relates to a pause time flow control technique having applicability in full-duplex Ethernet Local Area Network (LAN) systems conforming to the IEEE standard 802.3x.
2. Description of the Related Art
Network devices generally utilize a layered communication model such as the open systems interconnection (OSI) model developed by the International Organization for Standards (ISO) for providing structured processing of information. The OSI layered model is useful for separating the technological functions of each layer, and thereby facilitating the modification or update of a given layer without detrimentally impacting the functions of neighboring layers.
The OSI model defines layered processing that facilitates flexibly structured network communications functions relating to data transmission, inter-node routing, initiating, establishment and maintenance of a communication link between nodes, data transfer having a specified quality of service, etc. In accordance with established OSI convention, the lowermost layers comprise a media access control (MAC) layer and a physical layer. The physical layer encodes and decodes data into signals that are transmitted across a transmission medium, such as an electronic or fiber optic cable. The physical layer further includes an interface connector that is configured and operable to adaptively communicate across the transmission medium.
The most prominent protocol for controlling network traffic at the lower physical and MAC layers in local area networks (LANs) is known as Ethernet. Ethernet is packet-based and defines signal paths and signaling protocol for the physical layer, and packet formats and protocols for the MAC/data link layer of the OSI model. Ethernet is primarily standardized as IEEE standard 802.3. Ethernet has become the most widespread LAN technology in use during the 1990's to the present, and has largely replaced all other LAN standards such as token ring, FDDI, and ARCNET.
Congestion occurs in Ethernet transmissions when the bandwidth of a given network link is exceeded, resulting in transmission errors, lost data and/or substantial delays in data transmission. Conventional flow control techniques for addressing congestion typically involve sensing traffic levels at one or more network nodes, strategically distributing control-type packets to notify potentially affected nodes of a detected congestion condition, and delaying data packet transmission to/from specified nodes in accordance with an underlying flow control algorithm.
Flow control in Ethernet systems may be implemented in one or more of a variety of possible techniques. For example, high traffic experienced by a particular port in an Ethernet adapter, switch, or similar receiving device may cause the receive queue associated with that port to reach a predetermined threshold “overrun” value. Conversely, a relative low traffic condition experienced over a period of time at the input port may result in the associated receive queue dropping to a pre-specified “underrun” threshold level. Convention Ethernet flow control includes control frame techniques for addressing both overrun and underrun conditions. Specifically, responsive to a detected overrun condition, the host device driver, or other receiving device, generally instructs the remote transmitting device to pause data transmissions such that data accumulated in the receive queue may drain to level such that an actual overrun condition (i.e. packets dropped due to input queue space unavailability) is prevented. In Ethernet/IEEE 802.3x-compliant systems, the recipient Ethernet adapter sends an “XOFF” pause MAC control frame to the transmitting device. The XOFF pause frame includes a pause time field specifying a pause time value over which the transmitting device is directed to desist data transmissions to the receiving adapter. If, as reflected by the receiving adapter packet receive queue, the overrun condition adequately eases (e.g. receive queue falls below a pre-specified “underrun” threshold level) before expiration of the specified pause time value, the receiving adapter may prompt resumption of normal full duplex transmission by sending a second MAC control frame having a pause time value of zero. Such a pause time control frame having a zero pause time value for prompting resumption of full duplex transmission is often referred to as an “XON” frame.
A problem with convention XOFF and XON Ethernet flow control relates to a lack of adaptiveness to changing traffic conditions. Specifically, convention 802.3x pause time values are statically set typically by the host device driver programmer in accordance with host processing speed. The XOFF pause time value is typically conservatively set to a higher-than-optimal value given the priority that must be given to preventing overrun conditions in the receive FIFO queue. The conservatively set pause time value results in wasted link bandwidth.
From the foregoing, it can be appreciated that a need exists for an improved Ethernet flow control technique whereby the pause time value of XOFF frames and issuance of XON frames are cooperatively determined in accordance with changing traffic conditions. The present invention addresses this and other needs unresolved by the prior art.